package com.zhang.sort;

import com.zhang.tools.NewArrayUtils;

import java.util.Arrays;

/**
 * @author ZhangJiXin
 * @Description 测试计数排序
 * @date 2021/4/25 10:24
 */
public class Test {
    public static void main(String[] args) {
        Double[] d = new Double[]{0.21,0.43,0.13,0.51,0.47};
        new BucketSort().sort(d);
        for (int i = 0; i < d.length; i++) {
            System.out.print(d[i] + " ");
        }
//        Integer[] array = NewArrayUtils.getArray(20);
//        sort(array, new CountingSort(),
//            new CountingSort2(),
//                new RadixSort(),
//                new BucketSort());
    }

    /**
     * 批量执行排序算法 按照执行时间排序打印结果
     * @param array
     * @param sorts
     */
    public static void sort(Integer[] array,Sort... sorts){
        NewArrayUtils.printArray(array);
        for (Sort sort : sorts) {
            Integer[] copyArray = NewArrayUtils.copyArray(array);
            sort.sort(copyArray);
            NewArrayUtils.printArray(copyArray);
            System.out.println(sort.getClass().getName());
        }
        Arrays.sort(sorts);
        for (Sort sort : sorts) {
            System.out.println(sort);
        }


    }
}
